
import BackendjsFunctions from '@/core/BackendjsFunctions.js'
import { backendjsFunctions } from '@/core/functions.js'

export default {
  /**
   * 栅格总增加容器
   * @param {*} tmpContainerColId 栅格的 tmpId
   * @param {*} position 写入的位置，-1最左侧，-2最右侧
   * @returns 返回增加 box 后的所有 box数据列表，同编辑 col 时传入的第二个参数
   */
  addContainerBox (tmpContainerColId, position) {
    BackendjsFunctions._verification('addContainerBox')
    try {
      return backendjsFunctions().addContainerBox(tmpContainerColId, position)
    } catch (error) {
      console.error(error)
    }
    return null
  },

  /**
   * 容器中嵌套栅格
   * @param {string} tmpContainerId 主体区域主容器的 tmpId、底部区域主容器的 tmpId、容器的 tmpId
   * @param {number} row 行数
   * @param {number} col 列数
   * @param {*} position 写入的位置，-1最左侧，-2最右侧
   * @param {string} girdtype 栅格的换行方式参数
   * @returns 返回增加 col 后的所有 col 数据列表，同编辑 box 时传入的第三个参数
   */
  addContainerCol (tmpContainerId, row, col, position, girdtype) {
    BackendjsFunctions._verification('addContainerCol')
    try {
      return backendjsFunctions().addContainerCol(tmpContainerId, row, col, position, girdtype)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 设置容器参数
   * @param {*} bjContainer 编辑容器弹窗触发时给与的容器配置参数
   * @returns 没有返回值
   */
  setContainerBox (bjContainer) {
    BackendjsFunctions._verification('setContainerBox')
    try {
      return backendjsFunctions().setContainerBox(bjContainer)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 设置栅格参数
   * @param {*} bjContainer 编辑栅格弹窗触发时给与的栅格配置参数
   * @returns 没有返回值
   */
  setContainerCol (bjContainer) {
    BackendjsFunctions._verification('setContainerCol')
    try {
      return backendjsFunctions().setContainerCol(bjContainer)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 删除容器操作
   * @param {*} tmpContainerBoxId 需要被删除容器的 tmpId
   * @returns 返回删除 box 后的所有 box数据列表，同编辑 col 时传入的第二个参数
   */
  delContainerBox (tmpContainerBoxId) {
    BackendjsFunctions._verification('delContainerBox')
    try {
      return backendjsFunctions().delContainerBox(tmpContainerBoxId)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 删除栅格操作
   * @param {*} tmpContainerColId 需要被删除栅格的 tmpId
   * @returns 返回删除 col 后的所有 col 数据列表，同编辑 box 时传入的第三个参数
   */
  delContainerCol (tmpContainerColId) {
    BackendjsFunctions._verification('delContainerCol')
    try {
      return backendjsFunctions().delContainerCol(tmpContainerColId)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 是否可以删除，返回 布尔类型，栅格、容器均可以调用这个方法
   * @param {*} tmpId 判断被删除的 tmpId
   * @returns true 可以 false  不可以，
   */
  isDelContainerColBox (tmpId) {
    BackendjsFunctions._verification('isDelContainerColBox')
    try {
      return backendjsFunctions().isDelContainerColBox(tmpId)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 对容器进行排序，传入容器的列表数据，返回排序好后的列表数据，如果排序写入正常返回传入的参数数据
   * @param {*} dtboxs
   * @returns
   */
  sortContainerBox (dtboxs) {
    BackendjsFunctions._verification('sortContainerBox')
    try {
      return backendjsFunctions().sortContainerBox(dtboxs)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 对栅格进行排序，传入栅格的列表数据，返回排序好后的列表数据，如果排序写入正常返回传入的参数数据
   * @param {*} dtcols
   * @returns
   */
  sortContainerCol (dtcols) {
    BackendjsFunctions._verification('sortContainerCol')
    try {
      return backendjsFunctions().sortContainerCol(dtcols)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 容器中添加表单
   * @param {string} tmpContainerBoxId 容器box的 tmpId 标识
   * @param {number} formId 表单ID，系统后台数据 id
   * @returns boolean
   */
  addFormByTmpContainerBoxId (tmpContainerBoxId, formId) {
    BackendjsFunctions._verification('addFormByTmpContainerBoxId')
    try {
      return backendjsFunctions().addFormByTmpContainerBoxId(tmpContainerBoxId, formId)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 显示容器的阴影部分
   * @param {*} tmpId 容器的 tmpId 数据
   * @returns boolean
   */
  showShadowContainer (tmpId) {
    BackendjsFunctions._verification('showShadowContainer')
    try {
      return backendjsFunctions().showShadowContainer(tmpId)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 隐藏容器的阴影部分
   * @param {*} tmpId 容器的 tmpId 数据
   * @returns boolean
   */
  hideShadowContainer (tmpId) {
    BackendjsFunctions._verification('hideShadowContainer')
    try {
      return backendjsFunctions().hideShadowContainer(tmpId)
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 隐藏所有容器的阴影部分
   * @returns boolean
   */
  hideAllShadowContainer () {
    BackendjsFunctions._verification('hideAllShadowContainer')
    try {
      return backendjsFunctions().hideAllShadowContainer()
    } catch (error) {
      console.error(error)
    }
    return null
  },
  /**
   * 根据容器的 tmpId ，页面滚动条定位
   * @param {*} tmpId 容器的 tmpId 数据
   * @returns boolean
   */
  scrollContainer (tmpId) {
    BackendjsFunctions._verification('scrollContainer')
    try {
      return backendjsFunctions().scrollContainer(tmpId)
    } catch (error) {
      console.error(error)
    }
    return null
  }
}
